The use of smartphones today is almost as prevalent as the use of credit cards. However, despite the widespread use of both, merchants, application developers, and hardware developers have been unable to achieve a popular integration of credit card payments with smartphones. For example, some merchants have begun using magnetic credit card readers. These readers are connectable to a data interface of a smartphone (e.g., Universal Serial Bus (“USB”), Bluetooth, headphone port, etc.) and are configured to read a magnetic strip of a credit card. While somewhat popular, a merchant is required to purchase these credit card readers and wait several days or weeks for arrival in the mail. Moreover, these credit card readers are only useful to the extent the merchant is physically present. Most consumers do not possess magnetic credit card readers to make online purchases.
Other hardware developers are attempting to market the use of Near Field Communication (“NFC”) for merchant transactions. This technology requires that the merchant provide an NFC reader (e.g., a NFC enabled smartphone and a separate NFC payment terminal). This technology also requires that consumers have provisioned NFC smartphones or NFC-enabled credit cards. A current issue with this technology is that many credit cards and smartphones are not NFC compliant, at least not in the United States. Moreover, similar to the issues with magnetic readers, NFC payment systems require that the merchant have separate hardware and be physically present. Moreover, NFC cannot be used to make online payments.
Software developers have recently developed optical credit card applications that can be used with many online storefronts. These optical credit card apps record a picture of a credit card and use optical character recognition (“OCR”) algorithms to determine the characters on the card. These algorithms populate the detected characters into the relevant payment fields. Many of these known OCR algorithms are configured to perform dictionary-based pattern recognition to identify characters. For example, current OCR algorithms use pattern recognition to determine character types from scanned images. These OCR algorithms may also determine the character based on previous determined characters (e.g., an ‘h’ is more likely to follow a ‘t’ rather than a ‘f’). Moreover, these OCR algorithms may determine characters by analyzing entire words or phrases.
While successful in some contexts, known optical credit card apps are relatively ineffective under varying lighting conditions and character fonts. Further, these optical credit card apps oftentimes require that a consumer align the card a certain distance and orientation from a smartphone's camera. Otherwise, the sizing of the scanned characters is not compatible with the algorithm's matching routines, which require relatively consistent character sizing.
Another common issue among these known OCR algorithms is that the character matching is relatively inefficient because the algorithms are configured to determine a scanned character among all character types. In other words, the OCR algorithms perform character matching by accessing one data structure that includes definitions for all characters. Further, known OCR algorithms are only configured to determine characters and cannot be used to determine graphical elements including logos, trademarks, figures, pictures, etc. A need accordingly exists for an optical pattern recognition system that creates separate definitions for each character or graphical object type based on comprehensive training algorithms that analyze many different samples under disparate conditions.